package com.molichuxing.gateway.bff.order.entity.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.OrderSubscribeStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订阅里程列表vo
 *
 * @author zoumingyu
 * @date 2019年8月22日
 */
@Data
public class OrderSubscribeVo extends ResponseRootDto {
	private static final long serialVersionUID = 7502492945355051310L;

	@ApiModelProperty(value = "订单号")
	private Long orderCode;
	
	@ApiModelProperty(value = "用户id")
	private Integer userId;

	@ApiModelProperty(value = "用户账号")
	private String userName;

	@ApiModelProperty(value = "用户姓名")
	private String userRealName;

	@ApiModelProperty(value = "用户手机")
	private String userPhone;

	@ApiModelProperty(value = "下单门店id")
	private Integer placeStoreId;

	@ApiModelProperty(value = "下单门店")
	private String placeStoreName;

	@ApiModelProperty(value = "车型名称id")
	private Integer vehicleId;

	@ApiModelProperty(value = "车型名称")
	private String vehicleName;

	@ApiModelProperty(value = "用车时长")
	private Integer transportTime;

	@ApiModelProperty(value = "总里程(包涵加购里程)")
	private Integer totalMileage;

	// @ApiModelProperty(value = "基础里程")
	// private Integer baseMileage;
	//
	// @ApiModelProperty(value = "订阅里程")
	// private Integer packageMileage;
	//
	// @ApiModelProperty(value = "赠送里程(0：不赠送)")
	// private Integer giftMileage;

	@ApiModelProperty(value = "里程详情")
	private List<ParamDetailVo> mileageDetail;

	@ApiModelProperty(value = "订单总金额")
	private BigDecimal totalAmount;

	// @ApiModelProperty(value = "租车费")
	// private BigDecimal rental;
	//
	// @ApiModelProperty(value = "基础里程费")
	// private BigDecimal baseMileagePrice;
	//
	// @ApiModelProperty(value = "订阅里程费")
	// private BigDecimal packageMileagePrice;

	@ApiModelProperty(value = "里程详情")
	private List<ParamDetailVo> amountDetail;

	@ApiModelProperty(value = "有无续订(0：无，1：有)")
	private Boolean isHaveSuborder;

	@ApiModelProperty(value = "下单时间")
	private LocalDateTime orderTime;
	
	@ApiModelProperty(value = "还车时间")
	private LocalDateTime returnTime;

	@ApiModelProperty(value = "订单状态()")
	private Integer orderStatus;

	@ApiModelProperty(value = "订单状态str")
	private String orderStatusStr;

	@ApiModelProperty(value = "审核状态str")
	private String auditStatusStr;

	@ApiModelProperty(value = "退款状态str")
	private String refundStatusStr;

	@ApiModelProperty(value = "车辆id")
	private Integer carId;

	@ApiModelProperty(value = "车架号")
	private String vin;

	@ApiModelProperty(value = "车牌号")
	private String licencePlate;

	public void setOrderStatus(OrderSubscribeStatusEnum orderStatus) {
		this.orderStatus = orderStatus == null ? null : orderStatus.getValue();
		this.orderStatusStr = orderStatus == null ? null : orderStatus.getName();
	}
}
